#include <iostream>
#include <string.h>
using namespace std;
/*
	调用类看起来像调用函数，所以叫函数对象
	函数对象概念的由来：

*/
// 定义类：要求类重载圆括号，返回值bool，参数没有

class Test
{
public:
	bool operator()()
	{
		cout << "Test类重载了圆括号" << endl;
		return true;
	}
};

int main()
{
	// 创建Test类的对象
	Test fun;

	// 调用你重载的圆括号
	// 人类习惯
	/*
		1.fun本质是个类对象
		2.由于Test类重载了()，导致fun类对象调用()重载的写法，跟普通函数调用的写法类似
		3.C++大神发明概念：把fun叫做函数对象
		总结：类重载圆括号，该类对象(调用重载的原括号)具备了跟函数调用类似的写法，该类对象叫做函数对象
	*/
	fun();
	return 0;
}